package com.uade.tp.view;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;

import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JOptionPane;

import javax.swing.WindowConstants;

import com.uade.tp.controlador.Delivery;
import com.uade.tp.negocio.view.ProductoSeccionView;
import com.uade.tp.negocio.view.SeccionView;


/**
* This code was edited or generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder, which is free for non-commercial
* use. If Jigloo is being used commercially (ie, by a corporation,
* company or business for any purpose whatever) then you
* should purchase a license for each developer using Jigloo.
* Please visit www.cloudgarden.com for details.
* Use of Jigloo implies acceptance of these licensing terms.
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
* LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
*/
public class BajaProductoSeccion extends javax.swing.JFrame {
	private JLabel seccionesLbl;
	private JButton cancelarBtn;
	private JButton eliminarBtn;
	private JComboBox jComboBoxProductos;
	private JComboBox jComboBoxSecciones;
	private JLabel productosLbl;
	private static BajaProductoSeccion instancia;
	private BajaProductoSeccion() {
		super();
		initGUI();
	}
	public static BajaProductoSeccion getInstancia() {
		if(instancia == null) {
			instancia = new BajaProductoSeccion();
		}
//		instancia.cargarLista();
		instancia.setVisible(true);
		return instancia;
	}
	private void initGUI() {
		try {
			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
			getContentPane().setLayout(null);
			{
				seccionesLbl = new JLabel();
				getContentPane().add(seccionesLbl);
				seccionesLbl.setText("Secciones");
				seccionesLbl.setBounds(43, 35, 72, 17);
			}
			{
				productosLbl = new JLabel();
				getContentPane().add(productosLbl);
				productosLbl.setText("Productos");
				productosLbl.setBounds(43, 80, 54, 16);
			}
			{
				cancelarBtn = new JButton();
				getContentPane().add(cancelarBtn);
				cancelarBtn.setText("Cancelar");
				cancelarBtn.setBounds(181, 148, 115, 41);
				cancelarBtn.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						System.out.println("cancelarBtn.actionPerformed, event="+evt);
						BajaProductoSeccion.getInstancia().setVisible(false);
					}
				});
			}
			{
				eliminarBtn = new JButton();
				getContentPane().add(eliminarBtn);
				eliminarBtn.setText("Eliminar");
				eliminarBtn.setBounds(43, 148, 123, 41);
				eliminarBtn.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						System.out.println("eliminarBtn.actionPerformed, event="+evt);
						try{
							Delivery.getInstancia().bajaProductoSeccion(
									((SeccionView)jComboBoxSecciones.getSelectedItem()).getNombre(), 
									((ProductoSeccionView)jComboBoxProductos.getSelectedItem()).getProducto().getNombre()
									);
							
							//actualizo combo producto
							ComboBoxModel productosModel = 
									new DefaultComboBoxModel(BajaProductoSeccion.getInstancia().cargarProductos());
							jComboBoxProductos.setModel(productosModel);
						} catch(NullPointerException e) {
							JOptionPane.showMessageDialog(null, "Debe seleccionar todos los elementos.");
						}
					}
				});
			}
			{
				ComboBoxModel jComboBoxSeccionesModel = new DefaultComboBoxModel();
//				ComboBoxModel jComboBoxSeccionesModel = new DefaultComboBoxModel();
				jComboBoxSecciones = new JComboBox();
				getContentPane().add(jComboBoxSecciones);
				jComboBoxSecciones.setModel(jComboBoxSeccionesModel);
				jComboBoxSecciones.setBounds(127, 32, 207, 20);
				jComboBoxSecciones.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						System.out.println("jComboBoxSecciones.actionPerformed, event="+evt);
						ComboBoxModel productosModel = new DefaultComboBoxModel(BajaProductoSeccion.getInstancia().cargarProductos());
						jComboBoxProductos.setModel(productosModel);
					}
				});
			}
			{
				ComboBoxModel jComboBoxProductosModel = new DefaultComboBoxModel(new String[] {});
				jComboBoxProductos = new JComboBox();
				getContentPane().add(jComboBoxProductos);
				jComboBoxProductos.setModel(jComboBoxProductosModel);
				jComboBoxProductos.setBounds(127, 77, 207, 22);
			}
			pack();
			this.setSize(393, 255);
		} catch (Exception e) {
		    //add your error handling code here
			e.printStackTrace();
		}
	}
	
	private SeccionView[] cargarSecciones() {
		Vector<SeccionView> secciones=Delivery.getInstancia().getDeliveryView().obtenerSeccionesView();
		SeccionView[] seccionesAdd = new SeccionView[secciones.size()];
		secciones.toArray(seccionesAdd);
		
		return seccionesAdd;
	}
	
//	private void cargarLista(){
//		Vector <SeccionView> secc = Delivery.getInstancia().obtenerSeccionesView();
//		jComboBoxSecciones.removeAllItems();
//		for(SeccionView s:secc){
//			jComboBoxSecciones.addItem(s);
//		}		
//	}
	
	private ProductoSeccionView[] cargarProductos() {
		SeccionView secciones=(SeccionView)jComboBoxSecciones.getSelectedItem();
		secciones = Delivery.getInstancia().obtenerProductosView(secciones.getNombre());
		ProductoSeccionView[] productosAdd = new ProductoSeccionView[secciones.getProductos().size()];
		secciones.getProductos().toArray(productosAdd);
		
		return productosAdd;
	}
	
	public void recargarSecciones() {
		ComboBoxModel jComboBoxSeccionesModel = new DefaultComboBoxModel(cargarSecciones());
		jComboBoxSecciones.setModel(jComboBoxSeccionesModel);
	}
	
	public boolean existenSecciones() {
		return jComboBoxSecciones.getItemCount() > 0;
	}

}
